<?php
require_once '../../../core/fcCommon.php';
require_once '../../../core/fcORM_raschada_rx.php';
require_once '../../../log/Logger.php';
Logger::configure('../../../log4php.xml');
$logger = Logger::getLogger(__FILE__);

$json = getJsonFromRequest();
$obj = new Entity("raschada_rx_lot_item");
foreach($json as $key => $value){
    $obj->put($key, $value);
}
$util = new DojoUtil();
if($obj->get('drug_expire_datetime') == ' 00:00:00'){
    $obj->put('drug_expire_datetime', null);
}else{
    $obj->put('drug_expire_datetime', $util->datetimeFromDojo($obj->get('drug_expire_datetime')));
}
$obj->put('create_datetime', date("Y-m-d H:i:s", time() - 3600));

$conn = new Connection();
/**
 *
 * ถ้า lot_amount มาเป็นบวก ไม่ต้องตรวจสอบวันที่ expire
 * ถ้า lot_amount มาเป็นลบ ต้องตรวจสอบว่า ในล็อต drug ตัวนี้ มีวันหมดอายุเท่านี้หรือป่าว
 * ถ้าไม่มี ให้แจ้งเตือน ผู้ใช้งาน 
 */
$lotAmount = $obj->get('drug_lot_amount');
$canAdd = true;
if($lotAmount < 0){
    $sqlStr = "select li.*,sum(li.drug_lot_amount) as lot_remain from raschada_rx_lot_item li ";
    $sqlStr .= "where li.drug_expire_datetime='".$obj->get('drug_expire_datetime')."' ";
    $sqlStr .= "and li.drug_id=".$obj->get('drug_id')." ";
    $sqlStr .= "group by li.drug_id ";
    
    $res = $conn->query($sqlStr);
    $count = 0;
    $lotRemain = 0;
    foreach ($res as $r) {
       $count++;
       $lotRemain = $r->get('lot_remain');
    }

    $logger->debug("count:".$count);
    if($count == 0){
        $canAdd = false;
        $obj = new Entity("");
        $obj->put('status', 'fail');
        $obj->put('message', 'วันหมดอายุไม่มีในระบบ ไม่สามารถนำยาออกได้');
        echo $obj->toJson();
    }else{
        /**
        *
        * ตรวจสอบว่า ยาคงเหลือพอที่จะให้หักหรือป่าว 
        */
        $logger->debug("lotRemain:".$lotRemain.",lotAmount:".$lotAmount);
        if($lotAmount + $lotRemain < 0){
            $canAdd = false;
            $obj = new Entity("");
            $obj->put('status', 'fail');
            $obj->put('message', 'ไม่มียาเพียงพอให้หักออก ตอนนี้เหลือ '.$lotRemain);
            echo $obj->toJson();
        }
    }
}

if(!$canAdd){
    
}else{
    $lastId = $conn->persist($obj);

    $obj = new Entity("raschada_rx_lot_item");
    $obj->put('drug_lot_id', $lastId);
    $res = $conn->find($obj);

    $jsonRes = "";
    foreach ($res as $r) {
        $jsonRes = $r->toJson();
        break;
    }

    echo $jsonRes;
}

?>